00001 /////////////////////////////////////////////////////////////////////////////// 00002 /// @file Destiny3D.hpp 00003 /// 00004 /// @brief Destiny3D Engine Library For Applications 00005 /// 00006 /// @author Hootie 00007 /// 00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the 00009 /// contents of this file is subject to the Destiny3D Member License which 00010 /// can be found at http://www.destiny3d.com. Any other usage is prohibited. 00011 /// 00012 /// This file is distributed "AS IS" without warranty of any kind. Novus 00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file 00014 /// for any particular purpose. 00015 /// 00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved. 00017 /// 00018 /// <hr> 00019 /// Change History 00020 /// <hr> 00021 /// 00022 /// @date Oct 2001 00023 /// @author Hootie 00024 /// @remarks Creation 00025 /// 00026 /////////////////////////////////////////////////////////////////////////////// 00027 00028 #ifndef DESTINY3D_HPP 00029 #define DESTINY3D_HPP 00030 00031 #if defined(DESTINY3D_DLL_EXPORTS) || defined(DESTINY3D_EXPORT_ALL) 00032 # define DESTINY3D_API extern "C" DEDLL_EXPORT 00033 #elif defined(DESTINY3D_STATIC_LINK) 00034 # define DESTINY3D_API extern "C" 00035 #else 00036 # define DESTINY3D_API extern "C" DEDLL_IMPORT 00037 #endif 00038 00039 #if !defined(DESTINY3D_EXPORT_ALL) && !defined(DESTINY3D_DLL_EXPORTS) 00040 # if defined(USING_DESTINY3D_DLL) 00041 # undef USING_DESTINY3D 00042 # ifdef _DEBUG 00043 # pragma comment(lib, "_Destiny3D_sdlld") 00044 # else 00045 # pragma comment(lib, "_Destiny3D_sdll") 00046 # endif //_DEBUG 00047 # elif defined(USING_DESTINY3D) 00048 # ifdef _DEBUG 00049 # ifdef DESTINY3D_STATIC_LINK 00050 # pragma comment(lib, "_Destiny3D_sd") 00051 # else 00052 # pragma comment(lib, "_Destiny3Dd") 00053 # endif //DESTINY3D_STATIC_LINK 00054 # else 00055 # ifdef DESTINY3D_STATIC_LINK 00056 # pragma comment(lib, "_Destiny3D_s") 00057 # else 00058 # pragma comment(lib, "_Destiny3D") 00059 # endif //DESTINY3D_STATIC_LINK 00060 # endif //_DEBUG 00061 # endif //USING_DESTINY3D 00062 #endif //!defined(DESTINY3D_EXPORT_ALL) && !defined(DESTINY3D_DLL_EXPORTS) 00063 00064 //================================================================================= 00065 // Includes 00066 //================================================================================= 00067 00068 #include "deGlobalTypes.hpp" 00069 #include "deDriver.hpp" 00070 #include "deThread.hpp" 00071 00072 00073 //================================================================================= 00074 // Function Prototypes 00075 //================================================================================= 00076 00077 class IDestiny3DFactory; 00078 00079 DESTINY3D_API deBoolean Destiny3D_Init(const char *AppName = NULL); 00080 DESTINY3D_API deBoolean Destiny3D_ShutDown(void); 00081 00082 DESTINY3D_API IDestiny3DFactory* Destiny3D_GetFactory(); 00083 00084 class IdeResourceManager; 00085 class IdeSceneGraph; 00086 class Ide2DCollection; 00087 class IdeFont; 00088 class IdeBitmap; 00089 class IdeBitmapProxy; 00090 class IdeResourceBase; 00091 class IdeDriverLoad; 00092 class IdeVertexBuffer; 00093 class IdeSurface; 00094 class IdeRenderTexture; 00095 class IdeRenderMaterial; 00096 class IdeRenderLight; 00097 class IdeFileMemory; 00098 class IdeFilePlugin; 00099 class IdeFSReal; 00100 class IdeFSVirtual; 00101 class IdePluginTwofish; 00102 class IdePluginRijndael; 00103 class IdePluginZLib; 00104 class IdePluginSHA1; 00105 class IdeRender; 00106 class IdeCamera; 00107 class IdePlaneFrustum; 00108 class IdePortal; 00109 class IdeCollision; 00110 class IdeSceneRoom; 00111 class IdeSceneABT; 00112 class IdeSceneActor; 00113 class IdeSceneSky; 00114 class IdeSceneStaticMesh; 00115 class IdeSceneTerrain; 00116 class IdeSceneLight; 00117 class IdeWorldManager; 00118 class IdeMesh; 00119 class IdeThread; 00120 class IdeThreadLock; 00121 class IdeThreadPool; 00122 00123 DE3D_INTERFACE_(IDestiny3DFactory) 00124 { 00125 protected: 00126 virtual ~IDestiny3DFactory() {} 00127 public: 00128 virtual void ShutDown() = 0; 00129 00130 // interface queries 00131 virtual long GetIdeBitmapRscInterfaceID() = 0; 00132 virtual long GetIdeBitmapProxyWOInterfaceID() = 0; 00133 virtual long GetIdeAnimatedMeshRscInterfaceID() = 0; 00134 virtual long GetIdeSurfaceWOInterfaceID() = 0; 00135 virtual long GetIdeRenderStateWOInterfaceID() = 0; 00136 virtual long GetIdeSceneRoomWOInterfaceID() = 0; 00137 virtual long GetIdeSceneObjectWOInterfaceID() = 0; 00138 virtual long GetIdeMeshWOInterfaceID() = 0; 00139 00140 // singletons 00141 virtual IdeResourceManager* GetIdeResourceManager() = 0; 00142 virtual IdeRender* GetIdeRender() = 0; 00143 virtual IdeSceneGraph* GetIdeSceneGraph() = 0; 00144 virtual IdeWorldManager* GetIdeWorldManager() = 0; 00145 virtual IdeThreadPool* GetIdeThreadPool(u32 minThreadCount) = 0; 00146 00147 // creators 00148 virtual Ide2DCollection* CreateIde2DCollection() = 0; 00149 virtual IdeFont* CreateIdeFont() = 0; 00150 virtual IdeBitmap* CreateIdeBitmap() = 0; 00151 virtual IdeBitmap* CreateIdeBitmapWithInfo(s32 Width, s32 Height, IdeDriver::BPP Format, deBoolean CubeMap = deFALSE) = 0; 00152 virtual IdeBitmapProxy* CreateIdeBitmapProxy(IdeResourceBase* FromBitmap = NULL) = 0; 00153 virtual IdeMesh* CreateIdeMesh() = 0; 00154 virtual IdeDriverLoad* CreateIdeDriverLoad(char const * path) = 0; 00155 virtual IdeVertexBuffer* CreateIdeVertexBuffer() = 0; 00156 virtual IdeSurface* CreateIdeSurface() = 0; 00157 virtual IdeRenderTexture* CreateIdeRenderTexture() = 0; 00158 virtual IdeRenderMaterial* CreateIdeRenderMaterial() = 0; 00159 virtual IdeRenderLight* CreateIdeRenderLight() = 0; 00160 virtual IdeFileMemory* CreateIdeFileMemory() = 0; 00161 virtual IdeFilePlugin* CreateIdeFilePlugin() = 0; 00162 virtual IdeFSReal* CreateIdeFSReal() = 0; 00163 virtual IdeFSVirtual* CreateIdeFSVirtual() = 0; 00164 virtual IdePluginTwofish* CreateIdePluginTwofish() = 0; 00165 virtual IdePluginRijndael* CreateIdePluginRijndael() = 0; 00166 virtual IdePluginZLib* CreateIdePluginZLib() = 0; 00167 virtual IdePluginSHA1* CreateIdePluginSHA1() = 0; 00168 virtual IdeCamera* CreateIdeCamera() = 0; 00169 virtual IdePlaneFrustum* CreateIdePlaneFrustum() = 0; 00170 virtual IdePortal* CreateIdePortal() = 0; 00171 virtual IdeCollision* CreateIdeCollision() = 0; 00172 virtual IdeSceneRoom* CreateIdeSceneRoom() = 0; 00173 virtual IdeSceneABT * CreateIdeSceneABT() = 0; 00174 virtual IdeSceneActor* CreateIdeSceneActor() = 0; 00175 virtual IdeSceneSky * CreateIdeSceneSky() = 0; 00176 virtual IdeSceneStaticMesh* CreateIdeSceneStaticMesh() = 0; 00177 virtual IdeSceneTerrain* CreateIdeSceneTerrain() = 0; 00178 virtual IdeSceneLight* CreateIdeSceneLight() = 0; 00179 virtual IdeThread* CreateIdeThread(IdeThread::ThreadProc threadProc) = 0; 00180 virtual IdeThreadLock* CreateIdeThreadLock(u32 spinCount = 1024) = 0; 00181 }; 00182 00183 #endif //End DESTINY3D_HPP 00184
1.3-rc3